Video preview during trick play

ABSTRACT

Methods and systems are described for displaying a thumbnail preview of video content. In an aspect, one or more mosaic images made up of thumbnails corresponding to frames of the video content at multiple time points can be loaded into the system or created by the methods described. In an aspect, the selected thumbnail, as well as any other thumbnails, can be selected in response to receiving a command (e.g., trick play request) from the viewer. The command can dictate the direction from the selected thumbnail that the next thumbnails will be selected. The command can also dictate the frequency with which thumbnails will be selected from the mosaic image. In an aspect, frames comprised of thumbnails can be encoded to create the video content.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.15/877,130, filed Jan. 22, 208, which is a continuation of U.S. patentapplication Ser. No. 14/562,142, filed Dec. 5, 2014, which issued asU.S. Pat. No. 9,918,040, both of which are hereby incorporated byreference in their entirety.

BACKGROUND

A media player can present a thumbnail to a viewer that represents atime point in video content that is being rendered. However, thethumbnail is generated from a single image. Multiple images willtherefore need to be accessed in the event the media player needs todisplay multiple thumbnails. Loading multiple images to display multiplethumbnails will cause the media player to experience performance issues.These and other shortcomings of the prior art are addressed by thepresent disclosure.

SUMMARY

It is to be understood that both the following general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive. Methods and systems are described fordisplaying a thumbnail preview of video content. In an aspect, one ormore mosaic images made up of thumbnails corresponding to frames of thevideo content at multiple time points can be loaded into the system. Inan aspect, an image can be selected for use as a thumbnail from withinthe mosaic image by selecting a portion of the mosaic imagecorresponding to a time and utilizing the selected portion of the mosaicimage as a selected thumbnail. In an aspect, the selected thumbnail, aswell as any other thumbnails, can be selected in response to receiving acommand (e.g., trick play request) from the viewer. The command cancomprise fast forward, rewind, skip, hover over, and the like. Inanother aspect, video content, and portions thereof, can be recreatedusing the mosaic image. In an aspect, the selected thumbnail, as well asa predetermined number of the subsequent or previous thumbnails cancomprise frames of the video content. In an aspect, the selectedthumbnail and every N^(th) subsequent or previous thumbnail until eithera terminal thumbnail is reached or exceeded or a predetermined number ofthumbnails can comprise frames of the video content. In an aspect, theframes comprised of thumbnails can be encoded to create the videocontent.

In an aspect, methods and systems are described whereby a trick playrequest can be received. A video frame can be determined according tothe trick play request, and at least one image associated with the videoframe can be retrieved from a mosaic image and outputted for display.The mosaic image can comprise a plurality of images.

In an aspect, methods and systems are described whereby a trick playrequest can be received. A time point can be determined according to atimespan associated with the trick play request, and at least one imagecan be retrieved from a mosaic image and outputted for display, based onthe time point and a user preference.

In an aspect, methods and systems are described whereby a plurality ofimages can be extracted from a video content item. A mosaic image can begenerated using the plurality of images wherein one or more of theplurality of images can be later retrieved from the mosaic imageaccording to a user preference.

In an aspect, methods and systems are described whereby a mosaic imagecomprised of a plurality of images can be received. A logical temporalsequence can be determined for at least a portion of the plurality ofimages based on a request and rendered as a video.

Additional advantages will be set forth in part in the description whichfollows or may be learned by practice. The advantages will be realizedand attained by means of the elements and combinations particularlypointed out in the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate embodiments and together with thedescription, serve to explain the principles of the methods and systems:

FIG. 1 is a block diagram of an exemplary system and network;

FIG. 2 is a diagram of an exemplary interface of a media player;

FIG. 3 is a diagram of an exemplary interface of a media player;

FIG. 4 is a diagram of an exemplary mosaic image;

FIG. 5 is a diagram of an exemplary sequence of images associated with atrick play function;

FIG. 6 is a diagram of an exemplary sequence of images associated with atrick play function;

FIG. 7 is a flow chart of an exemplary method;

FIG. 8 is a flow chart of an exemplary method;

FIG. 9 is a flow chart of an exemplary method;

FIG. 10 is a flow chart of an exemplary method; and

FIG. 11 is a block diagram of an exemplary computing device.

DETAILED DESCRIPTION

Before the present methods and systems are disclosed and described, itis to be understood that the methods and systems are not limited tospecific methods, specific components, or to particular implementations.It is also to be understood that the terminology used herein is for thepurpose of describing particular embodiments only and is not intended tobe limiting.

As used in the specification and the appended claims, the singular forms“a,” “an,” and “the” include plural referents unless the context clearlydictates otherwise. Ranges may be expressed herein as from “about” oneparticular value, and/or to “about” another particular value. When sucha range is expressed, another embodiment includes from the oneparticular value and/or to the other particular value. Similarly, whenvalues are expressed as approximations, by use of the antecedent“about,” it will be understood that the particular value forms anotherembodiment. It will be further understood that the endpoints of each ofthe ranges are significant both in relation to the other endpoint, andindependently of the other endpoint.

“Optional” or “optionally” means that the subsequently described eventor circumstance may or may not occur, and that the description includesinstances where said event or circumstance occurs and instances where itdoes not.

Throughout the description and claims of this specification, the word“comprise” and variations of the word, such as “comprising” and“comprises,” means “including but not limited to,” and is not intendedto exclude, for example, other components, integers or steps.“Exemplary” means “an example of” and is not intended to convey anindication of a preferred or ideal embodiment. “Such as” is not used ina restrictive sense, but for explanatory purposes.

Disclosed are components that can be used to perform the disclosedmethods and systems. These and other components are disclosed herein,and it is understood that when combinations, subsets, interactions,groups, etc. of these components are disclosed that while specificreference of each various individual and collective combinations andpermutation of these may not be explicitly disclosed, each isspecifically contemplated and described herein, for all methods andsystems. This applies to all aspects of this application including, butnot limited to, steps in disclosed methods. Thus, if there are a varietyof additional steps that can be performed it is understood that each ofthese additional steps can be performed with any specific embodiment orcombination of embodiments of the disclosed methods.

The present methods and systems may be understood more readily byreference to the following detailed description of preferred embodimentsand the examples included therein and to the Figures and their previousand following description.

As will be appreciated by one skilled in the art, the methods andsystems may take the form of an entirely hardware embodiment, anentirely software embodiment, or an embodiment combining software andhardware aspects. Furthermore, the methods and systems may take the formof a computer program product on a computer-readable storage mediumhaving computer-readable program instructions (e.g., computer software)embodied in the storage medium. More particularly, the present methodsand systems may take the form of web-implemented computer software. Anysuitable computer-readable storage medium may be utilized including harddisks, CD-ROMs, optical storage devices, or magnetic storage devices.

Embodiments of the methods and systems are described below withreference to block diagrams and flowchart illustrations of methods,systems, apparatuses and computer program products. It will beunderstood that each block of the block diagrams and flowchartillustrations, and combinations of blocks in the block diagrams andflowchart illustrations, respectively, can be implemented by computerprogram instructions. These computer program instructions may be loadedonto a general purpose computer, special purpose computer, or otherprogrammable data processing apparatus to produce a machine, such thatthe instructions which execute on the computer or other programmabledata processing apparatus create a means for implementing the functionsspecified in the flowchart block or blocks.

These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including computer-readableinstructions for implementing the function specified in the flowchartblock or blocks. The computer program instructions may also be loadedonto a computer or other programmable data processing apparatus to causea series of operational steps to be performed on the computer or otherprogrammable apparatus to produce a computer-implemented process suchthat the instructions that execute on the computer or other programmableapparatus provide steps for implementing the functions specified in theflowchart block or blocks.

Accordingly, blocks of the block diagrams and flowchart illustrationssupport combinations of means for performing the specified functions,combinations of steps for performing the specified functions and programinstruction means for performing the specified functions. It will alsobe understood that each block of the block diagrams and flowchartillustrations, and combinations of blocks in the block diagrams andflowchart illustrations, can be implemented by special purposehardware-based computer systems that perform the specified functions orsteps, or combinations of special purpose hardware and computerinstructions.

The present disclosure relates to providing a plurality of thumbnailsrelated to video content in response to a trick play request from aviewer. In an aspect, a mosaic image can be supplied with the videocontent at the time that the video content is retrieved, accessed, orplayed. In another aspect, the mosaic image can be created dynamicallywhen the video content is retrieved or played. The mosaic image cancomprise the plurality of thumbnails related to the video content. In anaspect, each of the plurality of thumbnails can have the same heightand/or the same width. Each of the plurality of thumbnails can representthe same time interval, for example, every 3 seconds or every otherminute. In an aspect, the mosaic image can be created by dividing thetotal running time of the video content by the number of thumbnails tobe in the mosaic image to arrive at an interval and selecting a frame ateach interval. In an aspect, one of the plurality of thumbnails can beselected from within the mosaic image corresponding to a specific timepoint.

In another aspect, video content, and portions thereof, can be recreatedusing the mosaic image. For example, each of the thumbnails can be usedto create the video content, starting at the first thumbnail in themosaic image and ending at the last thumbnail in the mosaic image. In anaspect, one of the plurality of thumbnails can be selected as a firstframe of the video content according to the systems and methodsdescribed herein. In an aspect, the selected thumbnail, as well as apredetermined number of the subsequent or previous thumbnails cancomprise frames of the video content. In an aspect, the selectedthumbnail and every N^(th) subsequent thumbnail until a terminalthumbnail is reached or exceeded can comprise frames of the videocontent. In an aspect, the selected thumbnail and every N^(th)subsequent thumbnail until a predetermined number of thumbnails isreached can comprise frames of the video content. In an aspect, theselected thumbnail and every N^(th) previous thumbnail until a terminalthumbnail is reached or exceeded can comprise frames of the videocontent. In an aspect, the selected thumbnail and every N^(th) previousthumbnail until a predetermined number of thumbnails is reached cancomprise frames of the video content. In an aspect, the frames comprisedof thumbnails can be encoded to create the video content.

In one aspect of the disclosure, a system can be configured to provideservices such as network-related services to a user device. FIG. 1illustrates various aspects of an exemplary environment in which thepresent methods and systems can operate. Those skilled in the art willappreciate that present methods may be used in various types of networksand systems that employ both digital and analog equipment. One skilledin the art will appreciate that provided herein is a functionaldescription and that the respective functions can be performed bysoftware, hardware, or a combination of software and hardware.

The present disclosure is relevant to systems and methods for providingvideo content to a user device, for example, a user device such as acomputer, tablet, mobile device, communications terminal, or the like.In an aspect, one or more network devices can be configured to providethe video content to one or more user devices, such as user deviceslocated at or near a premises. The one or more user devices can comprisea media player 120 for displaying the video content. The media player120 can be configured to display thumbnails of the video contentretrieved from a mosaic image in response to a command (e.g., trickplay) from a viewer.

The network and system can comprise a user device 102 in communicationwith a computing device 104 such as a server, for example. The computingdevice 104 can be disposed locally or remotely relative to the userdevice 102. As an example, the user device 102 and the computing device104 can be in communication via a private and/or public network 105 suchas the Internet or a local area network. Other forms of communicationscan be used such as wired and wireless telecommunication channels, forexample.

In an aspect, the user device 102 can be an electronic device such as acomputer, a smartphone, a laptop, a tablet, a set top box, a displaydevice, or other device capable of communicating with the computingdevice 104. As an example, the user device 102 can comprise acommunication element 106 for providing an interface to a user tointeract with the user device 102 and/or the computing device 104. Thecommunication element 106 can be any interface for presenting and/orreceiving information to/from the user, such as user feedback. Anexample interface may be communication interface such as a web browser(e.g., Internet Explorer®, Mozilla Firefox®, Google Chrome®, Safari®, orthe like). Other software, hardware, and/or interfaces can be used toprovide communication between the user and one or more of the userdevice 102 and the computing device 104. As an example, thecommunication element 106 can request or query various files from alocal source and/or a remote source. As a further example, thecommunication element 106 can transmit data to a local or remote devicesuch as the computing device 104.

In an aspect, the user device 102 can be associated with a useridentifier or device identifier 108. As an example, the deviceidentifier 108 can be any identifier, token, character, string, or thelike, for differentiating one user or user device (e.g., user device102) from another user or user device. In a further aspect, the deviceidentifier 108 can identify a user or user device as belonging to aparticular class of users or user devices. As a further example, thedevice identifier 108 can comprise information relating to the userdevice such as a manufacturer, a model or type of device, a serviceprovider associated with the user device 102, a state of the user device102, a locator, and/or a label or classifier. Other information can berepresented by the device identifier 108.

In an aspect, the device identifier 108 can comprise an address element110 and a service element 112. In an aspect, the address element 110 cancomprise or provide an internes protocol address, a network address, amedia access control (MAC) address, an Internet address, or the like. Asan example, the address element 110 can be relied upon to establish acommunication session between the user device 102 and the computingdevice 104 or other devices and/or networks. As a further example, theaddress element 110 can be used as an identifier or locator of the userdevice 102. In an aspect, the address element 110 can be persistent fora particular network.

In an aspect, the service element 112 can comprise an identification ofa service provider associated with the user device 102 and/or with theclass of user device 102. The class of the user device 102 can berelated to a type of device, capability of device, type of service beingprovided, and/or a level of service (e.g., business class, service tier,service package, etc.). As an example, the service element 112 cancomprise information relating to or provided by a communication serviceprovider (e.g., Internet service provider) that is providing or enablingdata flow such as communication services to the user device 102. As afurther example, the service element 112 can comprise informationrelating to a preferred service provider for one or more particularservices relating to the user device 102. In an aspect, the addresselement 110 can be used to identify or retrieve data from the serviceelement 112, or vise versa. As a further example, one or more of theaddress element 110 and the service element 112 can be stored remotelyfrom the user device 102 and retrieved by one or more devices such asthe user device 102 and the computing device 104. Other information canbe represented by the service element 112.

In an aspect, the computing device 104 can be a server for communicatingwith the user device 102. As an example, the computing device 104 cancommunicate with the user device 102 for providing data and/or services.As an example, the computing device 104 can provide services such asnetwork (e.g., Internet) connectivity, network printing, mediamanagement (e.g., media server), content services, streaming services,broadband services, or other network-related services. In an aspect, thecomputing device 104 can allow the user device 102 to interact withremote resources such as data, devices, and files. As an example, thecomputing device 104 can be configured as (or disposed at) a centrallocation (e.g., a headend, or processing facility), which can receivecontent (e.g., data, input programming) from multiple sources. Thecomputing device 104 can combine the content from the multiple sourcesand can distribute the content to user (e.g., subscriber) locations viaa distribution system.

In an aspect, the computing device 104 can manage the communicationbetween the user device 102 and a database 114 for sending and receivingdata therebetween. As an example, the database 114 can store a pluralityof files (e.g., web pages), user identifiers or records, or otherinformation. For example, the database 114 can store one or more mosaicfiles. An exemplary mosaic file is illustrated in FIG. 4. A mosaic filecomprises a mosaic image, wherein the mosaic image comprises a pluralityof thumbnail images related to content played on media player 120. In anaspect, the mosaic file can be created by associating time points in thecontent played with an image of a frame of the content at the associatedtime points. In an aspect, time points can be determined from metadatain the content played. In an aspect, time points can be embedded in themosaic file. See the description of FIG. 4 for more details on creatingthe mosaic file. As a further example, the user device 102 can requestand/or retrieve a file from the database 114. In an aspect, the database114 can store information relating to the user device 102 such as theaddress element 110 and/or the service element 112. As an example, thecomputing device 104 can obtain the device identifier 108 from the userdevice 102 and retrieve information from the database 114 such as theaddress element 110 and/or the service elements 112. As a furtherexample, the computing device 104 can obtain the address element 110from the user device 102 and can retrieve the service element 112 fromthe database 114, or vice versa. Any information can be stored in andretrieved from the database 114. The database 114 can be disposedremotely from the computing device 104 and accessed via direct orindirect connection. The database 114 can be integrated with thecomputing system 104 or some other device or system.

In an aspect, one or more network devices 116 can be in communicationwith a network such as network 105. As an example, one or more of thenetwork devices 116 can facilitate the connection of a device, such asuser device 102, to the network 105. As a further example, one or moreof the network devices 116 can be configured as a wireless access point(WAP). In an aspect, one or more network devices 116 can be configuredto allow one or more wireless devices to connect to a wired and/orwireless network using Wi-Fi, Bluetooth or any desired method orstandard.

In an aspect, the network devices 116 can be configured as a local areanetwork (LAN). As an example, one or more network devices 116 cancomprise a dual band wireless access point. As an example, the networkdevices 116 can be configured with a first service set identifier (SSID)(e.g., associated with a user network or private network) to function asa local network for a particular user or users. As a further example,the network devices 116 can be configured with a second service setidentifier (SSID) (e.g., associated with a public/community network or ahidden network) to function as a secondary network or redundant networkfor connected communication devices.

In an aspect, one or more network devices 116 can comprise an identifier118. As an example, one or more identifiers can be or relate to anInternet Protocol (IP) Address IPV4/IPV6 or a media access controladdress (MAC address) or the like. As a further example, one or moreidentifiers 118 can be a unique identifier for facilitatingcommunications on the physical network segment. In an aspect, each ofthe network devices 116 can comprise a distinct identifier 118. As anexample, the identifiers 118 can be associated with a physical locationof the network devices 116.

In an aspect, the user device can comprise a media player 120. The mediaplayer 120 can receive video content from a remote device, such ascomputing device 104 and render the received video content. In anaspect, the media player 120 can stream video content from a remotedevice, such as computing device 104. In an aspect, the media player 120can cause the video content to be downloaded from a remote device, suchas computing device 104, and stored locally in user device 102 forplayback. In an aspect, the media player 120 can play video content froman external storage source, such as a digital video disc (DVD). In anaspect, the received video content can comprise a mosaic image, such asmosaic image 400, shown in FIG. 4. In an aspect, the media player 120can receive a mosaic image 400 from a transmission separate from thevideo content transmission. In an aspect, the media player 120 cancreate a mosaic image. The mosaic image 400 can comprise a plurality ofthumbnails. The plurality of thumbnails can each correspond to a timepoint in the video content. In an aspect, the media player 120 can usethe mosaic image 400 to show a preview of a corresponding frame when auser activates a trick play command. In an aspect, the media player 120can select a plurality of thumbnails from the mosaic image 400 to renderas video.

FIG. 2 illustrates an exemplary interface of a media player 120. Area202 can represent a display window for the media player 120. Area 202can comprise a window 204 for displaying video content, a scrubber 206for selecting a time point of the video content for display, and a clock208 for displaying a time point of the video content currently beingdisplayed. The scrubber 206 can be used to fast forward, rewind, or skipto a particular time point of the video content. The clock 208 candisplay a total runtime. The clock 208 can count up (time played), countdown (time remaining), or both.

FIG. 3 illustrates an exemplary interface of a media player 120. FIG. 3is similar to FIG. 2, except that a preview interface 302 appears inFIG. 3. The preview interface 302 can comprise a thumbnail display 304.The preview interface 302 can appear in response to a viewer activatinga trick play function. A trick play function can be a fast forwardcommand, a rewind command, or any command that causes the video contentto display in a sequence or speed out of the ordinary. In an aspect, atrick play function can have a variable multiplier or divisor to changethe speed of the trick play function. As an example, a fast forwardcommand can have an initial multiplier of 2, and the fast forwardcommand can further double a fast forward speed if the multiplier isincreased to 4. In an aspect, a trick play function can alter a speedbased on a location in content. As an example, a fast forward commandcan slow down a speed when a scene change is detected in content. In anaspect, slowing down a trick play function can comprise increasing anumber of thumbnails displayed in the thumbnail display 104 in a giveninterval of content. For example, if a fast forward command isactivated, a thumbnail can represent every 6 seconds of content during ascene, but a thumbnail can represent every 2 seconds of content beforeand after a scene change. In an aspect, speeding up a trick playfunction can comprise decreasing a number of thumbnails displayed in thethumbnail display 104 in a given interval of content.

FIG. 4 illustrates an exemplary mosaic image 400. In an aspect, themedia player 120 can receive the mosaic image 400 at or near the timethe media player 120 receives the video content for display. In anaspect, the received mosaic image 400 can be created by a creator of thevideo content, a host of the video content, or another third-party. Inan aspect, the media player 120 can create the mosaic image 400. In anaspect, the mosaic image 400 can be stored in any format, such asJavaScript Object Notation format, for example. Creating the mosaicimage 400 can comprise obtaining a predetermined number or range ofnumbers representing a number of thumbnails, a range of thumbnails,percentage of thumbnails, a range of percentages of thumbnails, anamount of time between thumbnails, a range of time between thumbnails,or any combination of the foregoing. The predetermined number or rangeof numbers can be adjustable. Creating the mosaic image 400 can comprisedetermining the number of thumbnails to include in the mosaic image 400,if not already obtained. Creating the mosaic image 400 can comprisedetermining the time intervals to include in between thumbnails, if notalready included. Creating the mosaic image 400 can comprise selecting aframe at each time interval obtained or determined. In an aspect, aselected frame can be converted into a thumbnail and included in themosaic image 400. In an aspect, a plurality of resolutions can beincluded in the mosaic image 400 for a selected frame. In an aspect, aplurality of sizes can be included in the mosaic image 400 for aselected frame. In an aspect, if a selected frame contains no or littleinformation, such as a frame that is all black, a substitute frame canbe selected for inclusion in the mosaic image 400. The substitute framecan be a frame adjacent to the originally selected frame.

The mosaic image 400 can comprise a plurality of images, such asthumbnails 402-440. In an aspect, the mosaic image 400 can comprise rowsand columns of images, although other arrangements are contemplated. Inan aspect, the sum of the widths of the images in a row, such as images402-410, can equal the width of the mosaic image 400. In an aspect, thesum of the heights of the images in a column can equal the height of themosaic image 400. In an aspect, the dimensions of the images can beheterogeneous. In an aspect, the dimensions of the images can behomogenous, allowing an image corresponding to a time point to beretrieved by offsets. For example, if the width of each image 402-440 inthe mosaic image 400 is 300, the height of each image 402-440 in themosaic image 400 is 240, each image 402-440 is a three second timeinterval, the mosaic image 400 has 5 columns of images, and the firstimage is at time point 0:03 second, then the column and row of the imagewithin the mosaic image can be determined for a given time point in thevideo content using the following methods.

In the example, a time associated with the video content can bedetermined when a request is received. For instance, if the videocontent is at 46.906 seconds when the request is received, then the timeassociated with the content can be rounded to the nearest integer, or 47seconds. Because the exemplary mosaic image 400 comprises thumbnailswith associated time points in multiples of three, and 47 is not amultiple of three, a second rounding decision can be made to round 47 tothe nearest multiple of three, or to 48 seconds. In another aspect,46.906 seconds could be directly rounded to 48 seconds in one step.

In the example, the time associated with the video content when therequest was received, 48 seconds, can be used to determine a targetthumbnail in the mosaic image 400 to return. For instance, 48 can bedivided by the three second interval to arrive at 16. The thumbnailcorresponding to 0:48 seconds can be determined as the 16^(th) thumbnailin the mosaic image 400. Because the first thumbnail 402 is at 0:03, andnot 0:00, the 16^(th) thumbnail, and not the 17^(th) thumbnail, is thecorrect thumbnail. Also note that because computer indexes generallybegin at 0, the order of the thumbnail, 16, will be decremented,resulting in 15.

In the example, the decremented order of the target thumbnail, 15, canbe used to determine a position of the target thumbnail in the mosaicimage 400. First, the row of the target thumbnail can be determined.Because there are five columns in the mosaic image 400, a new row willstart after each fifth thumbnail. Dividing the decremented order of thethumbnail by the number of columns and ignoring the remainder will yieldthe row of the thumbnail (or 15/5=3.0 or row 3). Note: Row 0 comprisesthumbnails 402-410; Row 1 comprises thumbnails 412-420; Row 2 comprisesthumbnails 422-430; etc. Next, the column of the target thumbnail can bedetermined by taking the remainder (or modularly dividing) thedecremented order divided by the number of columns (or 15%5=0 or column0).

In the example, row 3 and column 0, can be used to determine the targetthumbnail position in the mosaic image 400. With the row and columnnumber determined, an origin (or top left corner) of the targetthumbnail can be determined by multiplying the width of the images bycomputed column and the height of the images by the computed row or(0*300, 3*240) or (0, 720). The remaining corners of the target imagecan be computed by adding the appropriate dimensions. For instance, thetop right corner of the target image can be determined by adding thewidth of the images to the top left corner, or (0+300, 720) or (300,720). For instance, the bottom left corner can be determined by addingthe height of the images to the top left corner, or (0, 720+240) or (0,960). For instance, the bottom right corner can be determined by addingthe height of the images to the top right corner, or (300, 720+240) or(300, 960).

In the example, image 432 can be the rectangle with corners at the abovepositions on the mosaic image 400. One of ordinary still in the art willrealize that any other way of computing the positions of corners of atarget image within the mosaic image 400 can be used. Additionally, oneof ordinary skill in the art will realize that any other way of mappingan image within the mosaic image 400 to a time point in the videocontent can be used.

FIG. 5 illustrates an exemplary sequence of thumbnails to be presentedin connection with a trick play command. In an aspect, the trick playcommand can indicate a desire to skip the video content backwards, suchas a rewind command. In response to receiving the trick play command, aseries of thumbnails can be prepared for a preview. The series ofthumbnails can begin with a first thumbnail 432 within the mosaic image400. The first thumbnail 432 can be selected by determining a currenttime point in the displayed video content and determining a firstthumbnail 432 based on the position of the first thumbnail 432 in themosaic image 400. The position of the first thumbnail 432 in the mosaicimage 400 can indicate a corresponding time point in the video content.For example, a viewer can activate a trick play command for skipping thevideo backwards 47 seconds into video content. A selection can be madethat the thumbnail 432, determined to be associated with 48 seconds intothe video content, should be the first of a plurality of previewthumbnails. In another aspect, a determination can be made that athumbnail should not be shown if the video content time point associatedwith the thumbnail has not been shown. In such a circumstance, thethumbnail 430 associated with 45 seconds into the video content can bethe first selected thumbnail.

Once the first thumbnail 432 is selected, the thumbnails to besubsequently displayed can be selected. In an aspect, in the event of abackwards trick play request, such as a rewind request, the subsequentlyselected thumbnail can be a thumbnail that precedes the currentlyselected thumbnail. In an aspect, the subsequently selected thumbnailcan be the thumbnail that immediately precedes the currently selectedthumbnail in the mosaic image 400, such as thumbnail 430. In an aspect,the subsequently selected thumbnail can be a number of thumbnails priorto the currently selected thumbnail, wherein the number can increase asthe viewer indicates a desire to increase the speed of the backwardstrick play event. For example, the subsequently selected thumbnail canbe one thumbnail prior to the currently selected thumbnail. In theexample, if the viewer requests that the speed of the backwards trickplay event be increased by twice as fast as the current speed, then thesubsequently selected thumbnail can be two thumbnails prior to thecurrently selected thumbnail. In the example, if the viewer thenrequests that the speed of the backwards trick play event be increasedby twice as fast as the increased speed, then the subsequently selectedthumbnail can be four thumbnails prior to the currently selectedthumbnail. In an aspect, the speed of the backwards trick play event canbe changed by an indication of an event in the content, such as a changein scene. In an aspect, the indication of the event in the content canbe given through metadata. In an aspect, the indication of the event inthe content can be given by analyzing the content displayed. In anaspect, the speed of the backwards trick play event can be altered bychanging the number of thumbnails prior to the currently selectedthumbnail that the subsequently selected thumbnail is selected. Forexample, if a viewer has caused a trick play event to display thethumbnails such that the fourth thumbnail prior to the currentlyselected thumbnail is the subsequently selected thumbnail, in responseto detecting an event in content, such as a scene change, the trick playevent can “slow down” by selecting the third, second, and/or everythumbnail prior to the currently selected thumbnail. In an example, thetrick play event can “slow down” as the event in content is approached,(first, by selecting every third thumbnail prior to the currentlyselected thumbnail, then every second thumbnail prior to the currentlyselected thumbnail, and finally every thumbnail prior to the currentlyselected thumbnail), and then “speed up” as the event in content ismoved away from (first, by selecting every second thumbnail prior to thecurrently selected thumbnail, then every third thumbnail from thecurrently selected thumbnail, and finally every fourth thumbnail fromthe currently selected thumbnail). In an aspect, an indication of anevent can influence how the mosaic image is created. In an aspect, anindication of an event, such as a scene change can cause the time pointof the plurality of thumbnails in the mosaic image to change. Forexample, a mosaic image can arrange the plurality of thumbnails so that,usually, a thumbnail representing content will be present for everythree seconds of content. In the example, the mosaic image can arrangefor a thumbnail representing content to be present every two and/or onesecond in response to an indication of a scene change. In anotherexample, the mosaic image can arrange for a thumbnail representing everyone second to be created for the ten second range (five seconds beforeand five seconds after) surrounding the event, for example, anindication of a scene change, and every two seconds for the six secondsbefore the ten second range and the six seconds after the ten secondrange. In an aspect, each selected thumbnail can be displayed in thethumbnail display 304 as the thumbnail is selected. In an aspect, eachof the selected thumbnails can be assembled into an array of images andbe displayed sequentially in the thumbnail display 304. In an aspect,each of the selected thumbnails can be combined as frames of a video,and the media player 120 can render the video in the thumbnail display304.

In an aspect, information about a video, such as metadata, can allowbreaks, such as chapters, to be known about the video and can allow forskipping between a plurality of thumbnails associated with a pluralityof beginnings of a plurality of breaks. In an aspect, a break can be ascene change. In an aspect, a speed of a trick play command can speed upor slow down as a break is reached, as explained in the description ofFIG. 3. In an aspect, a viewer can cause the video content to play at atime point associated with a currently displayed thumbnail. In anaspect, when the beginning of the mosaic image 400 is reached, one of avariety of outcomes can take place. For example, when the beginning ofthe mosaic image 400 is reached, the video content can play from thebeginning of the video content. In another example, when the beginningof the mosaic image 400 is reached, the thumbnail display 304 can cycleback to the first thumbnail 432 and display the selected thumbnailsagain. In another example, when the beginning of the mosaic image 400 isreached, the video content can be displayed, starting at the timeassociated with the first selected thumbnail. In yet another example,when the beginning of the mosaic image 400 is reached, the video contentcan be displayed, resuming from the time in the video content when thetrick play command was received. In another example, when the beginningof the mosaic image 400 is reached, the video content can stopdisplaying.

FIG. 6 illustrates an exemplary sequence of thumbnails to be presentedin connection with a trick play command. In an aspect, the trick playcommand can indicate a desire to skip the video content forwards, suchas a fast forward command. In response to receiving the trick playcommand, a series of thumbnails can be prepared for a preview. Theseries of thumbnails can begin with a first thumbnail 432 within themosaic image 400. The first thumbnail 432 can be selected by determininga current time point in the displayed video content and determining afirst thumbnail 432 based on the position of the first thumbnail 432 inthe mosaic image 400. The position of the first thumbnail 432 in themosaic image 400 can indicate a corresponding time point in the videocontent. For example, a viewer can activate a trick play command forskipping the video forwards 47 seconds into a video content. A selectioncan be made that the thumbnail 432, determined to be associated with 48seconds into the video content, should be the first of a plurality ofpreview thumbnails. In another aspect, a determination can be made thata thumbnail should not be shown if the video content time pointassociated with the thumbnail has been shown.

Once the first thumbnail 432 is selected, the thumbnails to besubsequently displayed can be selected. In an aspect, in the event of aforwards trick play request, such as a fast forward request, thesubsequently selected thumbnail can be a thumbnail that follows thecurrently selected thumbnail. In an aspect, the subsequently selectedthumbnail can be the thumbnail that immediately follows the currentlyselected thumbnail in the mosaic image 400, such as thumbnail 434. In anaspect, the subsequently selected thumbnail can be a number ofthumbnails after the currently selected thumbnail, wherein the numbercan increase as the viewer indicates a desire to increase the speed ofthe forwards trick play event. For example, the subsequently selectedthumbnail can be one thumbnail after the currently selected thumbnail.In the example, if the viewer requests that the speed of the forwardstrick play event be increased by twice as fast as the current speed,then the subsequently selected thumbnail can be two thumbnails after thecurrently selected thumbnail. In the example, if the viewer thenrequests that the speed of the forwards trick play event be increased bytwice as fast as the increased speed, then the subsequently selectedthumbnail can be four thumbnails after the currently selected thumbnail.In an aspect, the speed of the forwards trick play event can be changedby an indication of an event in the content, such as a change in scene.In an aspect, the indication of the event in the content can be giventhrough metadata. In an aspect, the indication of the event in thecontent can be given by analyzing the content displayed. In an aspect,the speed of the forwards trick play event can be altered by changingthe number of thumbnails after the currently selected thumbnail that thesubsequently selected thumbnail is selected. For example, if a viewerhas caused a trick play event to display the thumbnails such that thefourth thumbnail after the currently selected thumbnail is thesubsequently selected thumbnail, in response to detecting an event incontent, such as a scene change, the trick play event can “slow down” byselecting the third, second, and/or every thumbnail after the currentlyselected thumbnail. In an example, the trick play event can “slow down”as the event in content is approached, (first, by selecting every thirdthumbnail after the currently selected thumbnail, then every secondthumbnail after the then currently selected thumbnail, and finally everythumbnail after the then currently selected thumbnail), and then “speedup” as the event in content is moved away from (first, by selectingevery second thumbnail after the currently selected thumbnail, thenevery third thumbnail after the currently selected thumbnail, andfinally every fourth thumbnail after the currently selected thumbnail).In an aspect, an indication of an event can influence how the mosaicimage is created. In an aspect, an indication of an event, such as ascene change, can cause the time point of the plurality of thumbnails inthe mosaic image to change. For example, a mosaic image can arrange theplurality of thumbnails so that, usually, a thumbnail representingcontent will be present for every three seconds of content. In theexample, the mosaic image can arrange for a thumbnail representingcontent to be presented every two and/or one second in response to anindication of a scene change. In another example, the mosaic image canarrange for a thumbnail representing every one second to be created forthe ten second range (five seconds before and five seconds after)surrounding the event, for example, an indication of a scene change, andevery two seconds for the six seconds before the ten second range andthe six seconds after the ten second range. In an aspect, each selectedthumbnail can be displayed in the thumbnail display 304 as the thumbnailis selected. In an aspect, each of the selected thumbnails can beassembled into an array of images and be displayed sequentially in thethumbnail display 304. In an aspect, each of the selected thumbnails canbe combined as frames of a video, and the media player 120 can renderthe video in the thumbnail display 304.

In an aspect, information about video content, such as metadata, canallow breaks, such as chapters, to be known about the video content andcan allow for skipping between a plurality of thumbnails associated witha plurality of beginnings of a plurality of breaks. In an aspect, abreak can be a scene change. In an aspect, a speed of a trick playcommand can speed up or slow down as a break is reached, as explained inthe description of FIG. 3. In an aspect, a viewer can cause the videocontent to play at a time point associated with a currently displayedthumbnail. In an aspect, when the end of the mosaic image 400 isreached, one of a variety of outcomes can take place. For example, whenthe end of the mosaic image 400 is reached, the video content can playfrom the beginning. In another example, when the end of the mosaic image400 is reached, the thumbnail display 304 can cycle back to the firstthumbnail 432 and display the selected thumbnails again. In anotherexample, when the end of the mosaic image 400 is reached, the videocontent can be displayed, starting at the time associated with the firstselected thumbnail. In yet another example, when the end of the mosaicimage 400 is reached, the video content can be displayed, resuming fromthe time in the video content when the trick play command was received.In another example, when the end of the mosaic image 400 is reached, thevideo content can stop displaying.

In one aspect, a plurality of mosaic files associated with the videocontent can be transmitted from a remote computing device 104 through anetwork 105 to a user device 102 comprising the media player 120. In anaspect, a mosaic file can comprise a mosaic image. In an aspect, a videocan be created using a plurality of thumbnails from a single mosaicimage, as explained above. In an aspect, a video can be created using aplurality of thumbnails from multiple mosaic files, using the techniquesdescribed above. For example, a first mosaic image can comprise athumbnail every three seconds, a second mosaic image can comprise athumbnail every two seconds, and a third mosaic image can comprise athumbnail every second. In the example, a video created in response to atrick play command can be created by taking thumbnails from the firstmosaic image for the corresponding video content, except that thumbnailsfrom the third mosaic image are used for the ten second windows of fiveseconds before and after a scene change and thumbnails from the secondmosaic image are used for the six seconds before the ten second windowand six seconds after the ten second window.

FIG. 7 is a flowchart illustrating an example method 700. At 702, atrick play request can be received. In an aspect, the request can bereceived at a user device 102 from a viewer. In an aspect, the requestcan be received at a media player 120 of the user device 102. In anaspect, the request can be entered on a second user device (notpictured) and transmitted to the user device 102. In a further aspect,the second user device can be a remote control, smart phone, tablet, orany other device capable of receiving input from the viewer andtransmitting the input to the user device 102. In an aspect, the seconduser device can communicate with the user device 102 using any method,including radio frequency communication.

A video frame can be determined according to the trick play request at704. In one aspect, determining a video frame according to the trickplay request can comprise determining a timespan associated with thetrick play request. In an aspect, the determined video frame can bebased on the time point within content when the trick play request wasreceived. In an aspect, the time point within the content can bedetermined by metadata.

At 706, at least one image associated with the video frame can beretrieved from a mosaic image. The mosaic image can comprise a pluralityof images. In one aspect, retrieving the at least one image associatedwith the video frame from the mosaic image can comprise determining animage in the mosaic image closest in time to the determined video frame.In yet a further aspect, retrieving the at least one image associatedwith the video frame from the mosaic image can comprise locating thedetermined image in the mosaic image. In an aspect, as explained inreference to FIGS. 5 and 6, the image associated with the video framecan be based on the trick play request (e.g., if the trick play is abackwards request, the identified video frame cannot be, in someaspects, a frame that has not played in the content yet). FIGS. 4, 5,and 6, described in detail above, show examples of retrieving an imagefrom a mosaic image.

At 708, the at least one retrieved image can be outputted for display.In an aspect, outputting for display the at least one retrieved imagecan comprise providing the at least one retrieved image for display inthe same format as the at least one image was when the at least oneimage was retrieved. In another aspect, outputting for display the atleast one retrieved image can comprise encoding the at least oneretrieved image as video, and then the video comprising the at least oneretrieved image can be provided for display. In an aspect, the video canbe created using a plurality of thumbnails from a single mosaic image,as explained above. In an aspect, the video can be created using aplurality of thumbnails from multiple mosaic files, using the techniquesdescribed above. For example, a first mosaic image can comprise athumbnail every three seconds, a second mosaic image can comprise athumbnail every two seconds, and a third mosaic image can comprise athumbnail every second. In the example, the video created in response toa trick play command can be created by taking thumbnails from the firstmosaic image for the corresponding video content, except that thumbnailsfrom the third mosaic image are used for the ten second windows of fiveseconds before and after a scene change and thumbnails from the secondmosaic image are used for the six seconds before the ten second windowand six seconds after the ten second window.

In an aspect, at least a portion of the plurality of images can beretrieved from the mosaic image in a logical temporal sequence startingwith the retrieved image. At least a portion of the plurality of imagescan be provided as a video according to the logical temporal sequence.In another aspect, the mosaic image can be associated with metadata. Themetadata can comprise one or more of: time points, heights, widths, timeintervals, and identifiers related to one or more of the plurality ofimages. In a further aspect, the metadata can be stored in any format,such as JavaScript Object Notation (JSON) format, for example.Furthermore, the mosaic image can comprise a JSON object. Furthermore, aJSON object can comprise the mosaic image.

In an aspect, the trick play request can comprise one or more of a fastforward request, a rewind request, a fast rewind request, a slow motionrequest, a speed-specified fast forward request, a speed-specifiedrewind request, and a speed-specified slow motion request. In yetanother aspect, each of the plurality of images can be stored in aplurality of sizes. In some aspects, each of the plurality of images canbe stored in a plurality of resolutions.

FIG. 8 is a flowchart illustrating an example method 800. At 802, atrick play request can be received. In an aspect, the request can bereceived at a user device 102 from a viewer. In an aspect, the requestcan be received at a media player 120 of the user device 102. In anaspect, the request can be entered on a second user device (notpictured) and transmitted to the user device 102. In a further aspect,the second user device can be a remote control, smart phone, tablet, orany other device capable of receiving input from the viewer andtransmitting the input to the user device 102. In an aspect, the seconduser device can communicate with the user device 102 using any method,including radio frequency communication.

At 804, a time point can be determined according to a timespanassociated with the trick play request. In one aspect, determining atime point according to a timespan associated with the trick playrequest can be based on the time point within content when the trickplay request was received. In an aspect, the time point within thecontent can be determined by metadata.

At 806, at least one image can be retrieved from a mosaic image, basedon the time point and a user preference. In an aspect, retrieving the atleast one image can comprise retrieving a plurality of images from themosaic image in a logical temporal sequence starting with the retrievedimage. In an aspect, the mosaic image can be associated with metadata,wherein the metadata can comprise one or more of: time points, heights,widths, time intervals, and identifiers related to the plurality ofimages in the mosaic image. The mosaic image can comprise a plurality ofimages. In one aspect, retrieving the at least one image from a mosaicimage can comprise determining an image closest in time to thedetermined time point. In yet a further aspect, retrieving at least oneimage from the mosaic image can comprise locating an image in the mosaicimage. In one aspect, the user preference can comprise one or more of animage size, image resolution, color depth, sharpening filter, imageformat, and any other image attribute. In an aspect, the user preferencecan be determined by feedback from a viewer. In an aspect, the userpreference can be determined by attributes of the content. For example,if the content is in high definition, then a user preference can be forhigh definition. In an aspect, as explained in reference to FIGS. 5 and6, the image associated with the video frame can be based on the trickplay request (e.g., if the trick play is a backwards request, theidentified video frame cannot be, in some aspects, a frame that has notplayed in the content yet). FIGS. 4, 5, and 6, described in detailabove, show examples of retrieving an image from a mosaic image.

At 808, the at least one retrieved image can be outputted for display.In an aspect, outputting for display the at least one retrieved imagecan comprise outputting the plurality of images as a video according tothe logical temporal sequence. In an aspect, outputting for display theat least one retrieved image can comprise providing the at least oneretrieved image for display in the same format as the at least one imagewas when the at least one image was retrieved. In another aspect,outputting for display the at least one retrieved image can compriseencoding the at least one retrieved image as video, and then the videocomprising the at least one retrieved image can be provided for display.In an aspect, the video can be created using a plurality of thumbnailsfrom a single mosaic image, as explained above. In an aspect, the videocan be created using a plurality of thumbnails from multiple mosaicfiles, using the techniques described above. For example, a first mosaicimage can comprise a thumbnail every three seconds, a second mosaicimage can comprise a thumbnail every two seconds, and a third mosaicimage can comprise a thumbnail every second. In the example, the videocreated in response to a trick play command can be created by takingthumbnails from the first mosaic image for the corresponding videocontent, except that thumbnails from the third mosaic image are used forthe ten second windows of five seconds before and after a scene changeand thumbnails from the second mosaic image are used for the six secondsbefore the ten second window and six seconds after the ten secondwindow.

In an aspect, the mosaic image can comprise a plurality of images. In anaspect, each of the plurality of images can have an associated timepoint. In an aspect, retrieving an image from a mosaic image cancomprise determining an image wherein the time point associated with thereceived image is closer to the determined time point than the timepoints associated with the other of the plurality of images according tothe timespan associated with the trick play request.

FIG. 9 is a flowchart illustrating an example method 900. At 902, aplurality of images can be extracted from a video content item. In oneaspect, the plurality of images can be comprised of a plurality ofthumbnail images with one or more of a specified size and a specifiedresolution. In an aspect, each extracted image can be associated with atime point in the video content item. In an aspect, the time point canbe determined by metadata associated with the video content item.

At 904, a mosaic image can be generated using the plurality of images.

In an aspect, the mosaic image can be associated with metadata, whereinthe metadata can comprise one or more of: time points, heights, widths,time intervals, and identifiers related to the plurality of images inthe mosaic image. In an aspect, the mosaic image can be an array ofimages. In an aspect, the mosaic image can be a multidimensional arrayof images. In an aspect, the mosaic image can comprise a JointPhotographic Experts Group (JPEG) format, a Portable Network Graphics(PNG) format, or any other type of image format. In an aspect, themetadata can help match a time point within content with one of theplurality of images within the mosaic image. FIG. 4 (above) describesexamples of how a position of one of the plurality of images within themosaic image relates to the image's associated time point within thecontent. In an aspect, the mosaic image can comprise layers. In anaspect, each frame represented in the mosaic image can comprise multiplelayers. In an aspect, each layer of a frame can represent a differentquality, such as a different resolution. For example, an image withinthe mosaic image associated with the frame at time point 48 seconds intothe content can comprise two layers: a first layer corresponding tostandard definition and a second layer corresponding to high definition.In another aspect, the mosaic image can comprise a plurality of layers,wherein each layer comprises a single one of the plurality of imageswithin the mosaic image. For example, each layer of the mosaic image cancorrespond to a time point within the content and comprise acorresponding one of the plurality of images within the mosaic image.

At 906, one or more of the plurality of images can be retrieved from themosaic image according to a user preference. In an aspect, the mosaicimage can be associated with metadata, wherein the metadata can compriseone or more of: time points, heights, widths, time intervals, andidentifiers related to the plurality of images in the mosaic image. Themosaic image can comprise a plurality of images. In one aspect,retrieving an image associated with the video frame from a mosaic imagecan comprise determining an image closest to the identified video framein time. In yet a further aspect, retrieving an image associated withthe video frame from a mosaic image can comprise locating the determinedimage in the mosaic image. In an aspect, as explained in reference toFIGS. 5 and 6, the image associated with the video frame can be based onthe trick play request (e.g., if the trick play is a backwards request,the identified video frame cannot be, in some aspects, a frame that hasnot played in the content yet). FIGS. 4, 5, and 6, described in detailabove, show examples of retrieving an image from a mosaic image. In anaspect, the user preference can be determined by feedback from a viewer.In an aspect, the user preference can be determined by attributes of thecontent. For example, if the content is in high definition, then a userpreference can be for high definition. In an aspect, the user preferencecan comprise one or more of size, resolution and location related to theretrieved one or more of the plurality of images. In another aspect, theretrieved plurality of images can be provided as a video stream.

FIG. 10 is a flowchart illustrating an example method 1000. At 1002, amosaic image comprised of a plurality of images can be received. In oneaspect, the mosaic image can be associated with metadata, wherein themetadata can comprise one or more of: time points, heights, widths, timeintervals, and identifiers related to the plurality of images in themosaic image. In another aspect, the plurality of images can beextracted from a video content item at a predefined time interval. Asdescribed above, FIG. 4 provides examples regarding a mosaic imagecomprised of a plurality of images.

At 1004, a logical temporal sequence can be determined for at least aportion of the plurality of images based on a request. In an aspect, therequest can be received at a user device 102 from a viewer. In anaspect, the request can be received at a media player 120 of the userdevice 102. In an aspect, the request can be entered on a second userdevice (not pictured) and transmitted to the user device 102. In afurther aspect, the second user device can be a remote control, smartphone, tablet, or any other device capable of receiving input from theviewer and transmitting the input to the user device 102. In an aspect,the second user device can communicate with the user device 102 usingany method, including radio frequency communication. In one aspect, thelogical temporal sequence for the at least a portion of the plurality ofimages can be determined based on the metadata. In an aspect, therequest can comprise a trick play request. For example, if the trickplay request is a backwards trick play request, then the logicaltemporal sequence can be backwards. FIGS. 5 and 6, described in detailabove, show examples of determining a logical temporal sequence for atleast a portion of the plurality of images.

At 1006, the portion of the plurality of images can be rendered as avideo according to the logical temporal sequence. In another aspect, aplurality of images can be retrieved and encoded as video, and then thevideo comprising the retrieved images can be provided for display. In anaspect, the video can be created using a plurality of thumbnails from asingle mosaic image, as explained above. In an aspect, the video can becreated using a plurality of thumbnails from multiple mosaic files,using the techniques described above. For example, a first mosaic imagecan comprise a thumbnail for every three seconds, a second mosaic imagecan comprise a thumbnail for every two seconds, and a third mosaic imagecan comprise a thumbnail for every second. In the example, the videocreated in response to a trick play command can be created by takingthumbnails from the first mosaic image for the corresponding videocontent, except that thumbnails from the third mosaic image are used forthe ten second windows of five seconds before and after a scene changeand thumbnails from the second mosaic image are used for the six secondsbefore the ten second window and six seconds after the ten secondwindow.

In an exemplary aspect, the methods and systems can be implemented on acomputer 1101 as illustrated in FIG. 11 and described below. By way ofexample, user device 102 and/or computing device 104 of FIG. 1 can be acomputer 1101 as illustrated in FIG. 11. Similarly, the methods andsystems disclosed can utilize one or more computers to perform one ormore functions in one or more locations. FIG. 11 is a block diagramillustrating an exemplary operating environment 1100 for performing thedisclosed methods. This exemplary operating environment 1100 is only anexample of an operating environment and is not intended to suggest anylimitation as to the scope of use or functionality of operatingenvironment architecture. Neither should the operating environment 1100be interpreted as having any dependency or requirement relating to anyone or combination of components illustrated in the exemplary operatingenvironment 1100.

The present methods and systems can be operational with numerous othergeneral purpose or special purpose computing system environments orconfigurations. Examples of well-known computing systems, environments,and/or configurations that can be suitable for use with the systems andmethods comprise, but are not limited to, personal computers, servercomputers, laptop devices, and multiprocessor systems. Additionalexamples comprise set top boxes, programmable consumer electronics,network PCs, minicomputers, mainframe computers, distributed computingenvironments that comprise any of the above systems or devices, and thelike.

The processing of the disclosed methods and systems can be performed bysoftware components. The disclosed systems and methods can be describedin the general context of computer-executable instructions, such asprogram modules, being executed by one or more computers or otherdevices. Generally, program modules comprise computer code, routines,programs, objects, components, data structures, and/or the like thatperform particular tasks or implement particular abstract data types.The disclosed methods can also be practiced in grid-based anddistributed computing environments where tasks are performed by remoteprocessing devices that are linked through a communications network. Ina distributed computing environment, program modules can be located inlocal and/or remote computer storage media including memory storagedevices.

Further, one skilled in the art will appreciate that the systems andmethods disclosed herein can be implemented via a general-purposecomputing device in the form of a computer 1101. The computer 1101 cancomprise one or more components, such as one or more processors 1103, asystem memory 1112, and a bus 1113 that couples various components ofthe computer 1101 including the one or more processors 1103 to thesystem memory 1112. In the case of multiple processors 1103, the systemcan utilize parallel computing.

The bus 1113 can comprise one or more of several possible types of busstructures, such as a memory bus, memory controller, a peripheral bus,an accelerated graphics port, and a processor or local bus using any ofa variety of bus architectures. By way of example, such architecturescan comprise an Industry Standard Architecture (ISA) bus, a MicroChannel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a VideoElectronics Standards Association (VESA) local bus, an AcceleratedGraphics Port (AGP) bus, and a Peripheral Component Interconnects (PCI),a PCI-Express bus, a Personal Computer Memory Card Industry Association(PCMCIA), Universal Serial Bus (USB) and the like. The bus 1113, and allbuses specified in this description can also be implemented over a wiredor wireless network connection and one or more of the components of thecomputer 1101, such as the one or more processors 1103, a mass storagedevice 1104, an operating system 1105, mosaic image software 1106,mosaic image data 1107, a network adapter 1108, system memory 1112, anInput/Output Interface 1110, a display adapter 1109, a display device1111, and a human machine interface 1102, can be contained within one ormore remote computing devices 1114 a,b,c at physically separatelocations, connected through buses of this form, in effect implementinga fully distributed system.

The computer 1101 typically comprises a variety of computer readablemedia. Exemplary readable media can be any available media that isaccessible by the computer 1101 and comprises, for example and not meantto be limiting, both volatile and non-volatile media, removable andnon-removable media. The system memory 1112 can comprise computerreadable media in the form of volatile memory, such as random accessmemory (RAM), and/or non-volatile memory, such as read only memory(ROM). The system memory 1112 typically can comprise data such as mosaicimage data 1107 and/or program modules such as operating system 1105 andmosaic image software 1106 that are accessible to and/or are operated onby the one or more processors 1103.

In another aspect, the computer 1101 can also comprise otherremovable/non-removable, volatile/non-volatile computer storage media.The mass storage device 1104 can provide non-volatile storage ofcomputer code, computer readable instructions, data structures, programmodules, and other data for the computer 1101. For example, a massstorage device 1104 can be a hard disk, a removable magnetic disk, aremovable optical disk, magnetic cassettes or other magnetic storagedevices, flash memory cards, CD-ROM, digital versatile disks (DVD) orother optical storage, random access memories (RAM), read only memories(ROM), electrically erasable programmable read-only memory (EEPROM), andthe like.

Optionally, any number of program modules can be stored on the massstorage device 1104, including by way of example, an operating system1105 and mosaic image software 1106. One or more of the operating system1105 and mosaic image software 1106 (or some combination thereof) cancomprise elements of the programming and the mosaic image software 1106.Mosaic image data 1107 can also be stored on the mass storage device1104. Mosaic image data 1107 can be stored in any of one or moredatabases known in the art. Examples of such databases comprise, DB2®,Microsoft® Access, Microsoft® SQL Server, Oracle®, mySQL, PostgreSQL,and the like. The databases can be centralized or distributed acrossmultiple locations within the network 1115.

In another aspect, the user can enter commands and information into thecomputer 1101 via an input device (not shown). Examples of such inputdevices comprise, but are not limited to, a keyboard, pointing device(e.g., a computer mouse, remote control), a microphone, a joystick, ascanner, tactile input devices such as gloves, and other body coverings,motion sensor, and the like These and other input devices can beconnected to the one or more processors 1103 via a human machineinterface 1102 that is coupled to the bus 1113, but can be connected byother interface and bus structures, such as a parallel port, game port,an IEEE 1394 Port (also known as a Firewire port), a serial port,network adapter 1108, and/or a universal serial bus (USB).

In yet another aspect, a display device 1111 can also be connected tothe bus 1113 via an interface, such as a display adapter 1109. It iscontemplated that the computer 1101 can have more than one displayadapter 1109 and the computer 1101 can have more than one display device1111. For example, a display device 1111 can be a monitor, an LCD(Liquid Crystal Display), light emitting diode (LED) display,television, smart lens, smart glass, and/or a projector. In addition tothe display device 1111, other output peripheral devices can comprisecomponents such as speakers (not shown) and a printer (not shown) whichcan be connected to the computer 1101 via Input/Output Interface 1110.Any step and/or result of the methods can be output in any form to anoutput device. Such output can be any form of visual representation,including, but not limited to, textual, graphical, animation, audio,tactile, and the like. The display 1111 and computer 1101 can be part ofone device, or separate devices.

The computer 1101 can operate in a networked environment using logicalconnections to one or more remote computing devices 1114 a,b,c. By wayof example, a remote computing device 1114 a,b,c can be a personalcomputer, computing station (e.g., workstation), portable computer(e.g., laptop, mobile phone, tablet device), smart device (e.g.,smartphone, smart watch, activity tracker, smart apparel, smartaccessory), security and/or monitoring device, a server, a router, anetwork computer, a peer device, edge device or other common networknode, and so on. Logical connections between the computer 1101 and aremote computing device 1114 a,b,c can be made via a network 1115, suchas a local area network (LAN) and/or a general wide area network (WAN).Such network connections can be through a network adapter 1108. Anetwork adapter 1108 can be implemented in both wired and wirelessenvironments. Such networking environments are conventional andcommonplace in dwellings, offices, enterprise-wide computer networks,intranets, and the Internet.

For purposes of illustration, application programs and other executableprogram components such as the operating system 1105 are illustratedherein as discrete blocks, although it is recognized that such programsand components can reside at various times in different storagecomponents of the computing device 1101, and are executed by the one ormore processors 1103 of the computer 1101. An implementation of mosaicimage software 1106 can be stored on or transmitted across some form ofcomputer readable media. Any of the disclosed methods can be performedby computer readable instructions embodied on computer readable media.Computer readable media can be any available media that can be accessedby a computer. By way of example and not meant to be limiting, computerreadable media can comprise “computer storage media” and “communicationsmedia.” “Computer storage media” can comprise volatile and non-volatile,removable and non-removable media implemented in any methods ortechnology for storage of information such as computer readableinstructions, data structures, program modules, or other data. Exemplarycomputer storage media can comprise RAM, ROM, EEPROM, flash memory orother memory technology, CD-ROM, digital versatile disks (DVD) or otheroptical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed by acomputer.

The methods and systems can employ artificial intelligence (AI)techniques such as machine learning and iterative learning. Examples ofsuch techniques include, but are not limited to, expert systems, casebased reasoning, Bayesian networks, behavior based AI, neural networks,fuzzy systems, evolutionary computation (e.g. genetic algorithms), swarmintelligence (e.g. ant algorithms), and hybrid intelligent systems (e.g.Expert inference rules generated through a neural network or productionrules from statistical learning).

While the methods and systems have been described in connection withpreferred embodiments and specific examples, it is not intended that thescope be limited to the particular embodiments set forth, as theembodiments herein are intended in all respects to be illustrativerather than restrictive.

Unless otherwise expressly stated, it is in no way intended that anymethod set forth herein be construed as requiring that its steps beperformed in a specific order. Accordingly, where a method claim doesnot actually recite an order to be followed by its steps or it is nototherwise specifically stated in the claims or descriptions that thesteps are to be limited to a specific order, it is no way intended thatan order be inferred, in any respect. This holds for any possiblenon-express basis for interpretation, including: matters of logic withrespect to arrangement of steps or operational flow; plain meaningderived from grammatical organization or punctuation; the number or typeof embodiments described in the specification.

It will be apparent to those skilled in the art that variousmodifications and variations can be made without departing from thescope or spirit. Other embodiments will be apparent to those skilled inthe art from consideration of the specification and practice disclosedherein. It is intended that the specification and examples be consideredas exemplary only, with a true scope and spirit being indicated by thefollowing claims.

What is claimed is:
 1. A method comprising: determining, based on aparameter, a mosaic image comprising a plurality of images; determininga time point associated with a trick play speed; determining, based onthe time point, an image of the plurality of images; encoding the imageof the plurality of images and at least a subsequent portion of theplurality of images as a video stream; and causing an output of thevideo stream.
 2. The method of claim 1, wherein the parameter comprisesat least one of: a height, a width, a time interval, a quantity of timebetween a first image of the plurality of images and second image of theplurality of images, or an identifier associated with the plurality ofimages.
 3. The method of claim 1, wherein the parameter is indicative ofa preference associated with at least one of: an image size, an imageresolution, a color depth, a sharpening filter, or an image format. 4.The method of claim 1, further comprising receiving a first requestassociated with a trick play indicative of the trick play speed, whereinthe first request comprises at least one of: a fast forward request, arewind request, or a slow motion request.
 5. The method of claim 4,further comprising: receiving a second request associated with the trickplay; and causing, based on the second request, an output of anothervideo stream.
 6. A method comprising: receiving a parameter;determining, based on the parameter, a plurality of images; determining,based on the plurality of images, a mosaic image; determining a timepoint associated with a trick play speed; encoding, based on the timepoint, at least a portion of the plurality of images as a video stream;and causing an output of the video stream.
 7. The method of claim 6,wherein the parameter comprises at least one of: a height, a width, atime interval, a quantity of time between a first image of the pluralityof images and second image of the plurality of images, or an identifierassociated with the plurality of images.
 8. The method of claim 6,wherein the parameter is indicative of a preference associated with atleast one of: an image size, an image resolution, a color depth, asharpening filter, or an image format.
 9. The method of claim 6, furthercomprising receiving a first request associated with a trick playindicative of the trick play speed, wherein the first request comprisesat least one of: a fast forward request, a rewind request, or a slowmotion request.
 10. The method of claim 9, wherein causing the output ofthe video stream comprises: receiving a second request associated withthe trick play; and causing, based on the second request, the output ofthe video stream.
 11. An apparatus, comprising: one or more processors;and memory storing processor executable instructions that, when executedby the one or more processors, cause the apparatus to: determine, basedon a parameter, a mosaic image comprising a plurality of images;determine a time point associated with a trick play speed; determine,based on the time point, an image of the plurality of images; encode theimage of the plurality of images and at least a subsequent portion ofthe plurality of images as a video stream; and cause an output of thevideo stream.
 12. The apparatus of claim 11, wherein the parametercomprises at least one of: a height, a width, a time interval, aquantity of time between a first image of the plurality of images andsecond image of the plurality of images, or an identifier associatedwith the plurality of images.
 13. The apparatus of claim 11, wherein theparameter is indicative of a preference associated with at least one of:an image size, an image resolution, a color depth, a sharpening filter,or an image format.
 14. The apparatus of claim 11, wherein the processorexecutable instructions, when executed by the one or more processors,further cause the apparatus to receive a first request associated with atrick play indicative of the trick play speed, wherein the first requestcomprises at least one of: a fast forward request, a rewind request, ora slow motion request.
 15. The apparatus of claim 14, wherein theprocessor executable instructions, that when executed by the one or moreprocessors, cause the apparatus to cause the output of the video streamcauses the apparatus to: receive a second request associated with thetrick play; and cause, based on the second request, the output of thevideo stream.
 16. An apparatus, comprising: one or more processors; andmemory storing processor executable instructions that, when executed bythe one or more processors, cause the apparatus to: receive a parameter;determine, based on the parameter, a plurality of images; determine,based on the plurality of images, a mosaic image; determine, a timepoint associated with a trick play speed; encode, based on the timepoint, at least a portion of the plurality of images as a video stream;and cause an output of the video stream.
 17. The apparatus of claim 16,wherein the parameter comprises at least one of: a height, a width, atime interval, a quantity of time between a first image of the pluralityof images and second image of the plurality of images, or an identifierassociated with the plurality of images.
 18. The apparatus of claim 16,wherein the parameter is indicative of a preference associated with atleast one of: an image size, an image resolution, a color depth, asharpening filter, or an image format.
 19. The apparatus of claim 16,wherein the processor executable instructions, when executed by the oneor more processors, further cause the apparatus to receive a firstrequest associated with a trick play indicative of the trick play speed,wherein the first request comprises at least one of: a fast forwardrequest, a rewind request, or a slow motion request.
 20. The apparatusof claim 19, wherein the processor executable instructions, that whenexecuted by the one or more processors, cause the apparatus to cause theoutput of the video stream causes the apparatus to: receive a secondrequest associated with the trick play; and cause, based on the secondrequest, the output of the video stream.